- SocketCreate
- SocketClose
- SocketConnect
- SocketIsConnected
- SocketIsReadable
- SocketIsWritable
- SocketTimeouts
- SocketRead
- SocketSend
- SocketTlsHandshake
- SocketTlsCertificate
- SocketTlsRead
- SocketTlsReadAvailable
- SocketTlsSend
- WebRequest
- SendFTP
- SendMail
- SendNotification
WebRequest
Die Funktion sendet eine HTTP-Anfrage an den angegebenen Server. Es gibt zwei Varianten der Funktion:
1. Für das Senden einer einfachen Anfragevom Typ "Schlüssel=Wert" mit dem Header Content-Type: application/x-www-form-urlencoded.
int WebRequest(
|
2. Für das Senden einer Anfrage beliebigen Typs mit einem eigenen Set von Headers für eine flexiblere Interaktion mit verschiedenen Webservices.
int WebRequest(
|
Parameter
method
[in] HTTP-Methode.
url
[in] URL-Adresse
headers
[in] Headers vom Type "Schlüssel=Wert", die durch Zeilenumbruch "\r\n" getrennt sind.
cookie
[in] Wert von Cookie.
referer
[in] Wert von Referer der HTTP-Anfrage.
timeout
[in] Timeout in Millisekunden.
data[]
[in] Array für die Daten des Body von HTTP-Nachrichten.
data_size
[in] Größe des data[]-Arrays.
result[]
[out] Array mit den Daten der Serverantwort
result_headers
[out] Headers der Serverantwort.
Rückgabewert
Antwortcode des HTTP-Servers oder -1 im Fehlerfall.
Hinweis
Um die WebRequest-Funktion zu verwenden, schreiben Sie die Serveradressen in die Liste der erlaubten URLs auf der Registerkarte "Experten" im Fenster "Einstellungen". Der Serverport wird auf der Grundlage des angegebenen Protokolls automatisch ausgewählt - 80 für "http://" und 443 für "https://".
Die WebRequest()-Funktion ist synchron, das heißt, sie unterbricht die Ausführung des Programms und wartet auf eine Antwort von dem angefragten Server. Da die Verzögerungen beim Erhalten einer Antwort auf die gesendete Anfrage groß sein können, ist es verboten, die Funktion von Indikatoren aus aufzurufen, denn die Indikatoren arbeiten in einem Thread, der für alle Indikatoren und Charts dieses Symbols gemeinsam ist. Die Verzögerung bei der Ausführung eines Indikators auf einem der Symbolcharts kann die Aktualisierung aller Charts dieses Symbols stoppen.
Die Funktion kann nur von Expert Advisors und Skripts aus aufgerufen werden, denn diese arbeiten in einem eigenen Thread. Wenn die Funktion aus einem Indikator aufgerufen wird, gibt GetLastError() den Fehler 4014 zurück – "Function is not allowed for call" (Die Funktion darf nicht aufgerufen werden.
Die WebRequest()-Funktion kann nicht im Strategietester ausgeführt werden.
Beispiel:
void OnStart()
|